In this particular case I hard-coded in the method to create or POST and also set both the emulate options to false. After applying this logic I got this much shorter method:
// hard code in the emulation and method
Backbone.sync = function(method, model, options) {
options || (options = {});
var params = {type: 'POST', dataType: 'json'};
// Ensure that we have a URL.
if (!options.url) {
params.url = _.result(model, 'url') || urlError();
}
// Ensure that we have the appropriate request data.
if (options.data == null) {
params.contentType = 'application/json';
params.data = JSON.stringify(options.attrs || model.toJSON(options));
}
params.processData = false;
var xhr = options.xhr = Backbone.ajax(_.extend(params, options));
model.trigger('request', model, xhr, options);
return xhr;
};