The error function will always be called. But you can check if it was an abort in the error function and ignore it:
var xhr = this.collection.fetch({
error: function(model, jqXHR, options) {
if (jqXHR.textStatus != "abort")
alert("oh no!");
}
});