Basically Backbone.sync should be a function that takes 4 arguments:
Backbone.sync = function(method, model, options) { };
You need to fire either options.success or options.error depending on whether the method succeeded. The methods are in the format:
"create" : expected that you create the model on the server
"read" : expected that you read this model from the server and return it
"update" : expected that you update the model on the server with the argument
"delete" : expected that you delete the model from the server.
You need to implement those 4 methods and define whatever you want for your "server"
Of course these are only the things that Backbone.sync must implement. You may implement more methods and you may pass more paramaters back to success but it's best not to do this.
It's best to make sure it does the same as Backbone.sync does currently so that your programming to an interface rather then an implementation. If you want to switch out your modified Backbone.sync for say the localStorage one you won't have to extend it yourself to match your extended Backbone.sync"
Also do note that you can use multiple implementations of sync. Every reference to Backbone.sync is actaully (this.sync || Backbone.sync) so you just have to do something like:
var MyModel = Backbone.Model.extend({
...
"sync": myOwnSpecificSync,
...
});
Backbone.sync is just the default global one that all models use unless the models have a sync method specifically set.