¿Valida el método dentro de Backbone Model que no se llama?

Comenzando a aprender Backbone, tratando de hacer una validación simple dentro de mi Modelo de Persona, pero el método de validación no parece ejecutarse cuando establezco una nueva era. ¿Alguien puede explicar dónde puedo estar yendo mal en esto? No quiero seguir con mi aprendizaje hasta que lo haga bien.

JS

var Person = Backbone.Model.extend({

    defaults: {
        name: 'John Doe',
        age: 30,
        occupation: 'working'
    },

    validate: function(attrs) {

        console.log(attrs);

        if ( attrs.age < 0 ) {
            return 'Age must be positive, stupid';
        }

        if ( ! attrs.name ) {
            return 'Every person must have a name, you fool.';
        }

    },

    work: function() {
        return this.get('name') + ' is working.';
    }

});

Actualmente solo estoy obteniendo y configurando valores en la consola, así que:

var person = new Person({
    name: 'Lady Madonna',
    age: 23
});

person.on('error', function(model, error){
    console.log(error);
});

Cuando configuro age para que sea un valor negativo, el método de validación no tiene efecto:

person.set('age', -55);

Respuestas a la pregunta(3)

Su respuesta a la pregunta