According to Backbone documentation, saving a new model will result in a POST request, and saving an existing model (having an id) will emit a PUT request.
save model.save([attributes], [options])
...
If the model isNew, the save will be a "create" (HTTP POST), if the model already
exists on the server, the save will be an "update" (HTTP PUT).
And if you are wondering if Backbone should use a POST for creation, check
- PUT vs POST in REST
- RESTful web services on Wikipedia
In the light of these articles, I'd say that, in the context of Backbone, the verbs are correctly used:
- saving a new model causes a change in the system, a new URL is added, the action is not idempotent, it should be a POST,
- saving a known model replaces a resource at a given URL, the action is idempotent, it should be a PUT.