code: function(attrs, options) {
        if (_.has(attrs, "ACL") && !(attrs.ACL instanceof Parse.ACL)) {
          return new Parse.Error(Parse.Error.OTHER_CAUSE,
                                 "ACL must be a Parse.ACL.");
        }
        var correct = true;
        Parse._objectEach(attrs, function(unused_value, key) {
          if (!(/^[A-Za-z][0-9A-Za-z_]*$/).test(key)) {
            correct = false;
          }
        });
        if (!correct) {
          return new Parse.Error(Parse.Error.INVALID_KEY_NAME); 
        }
        return false;
      }
docs: You should not call this function directly unless you subclass
  <code>Parse.Object</code>, in which case you can override this method
  to provide additional validation on <code>set</code> and
  <code>save</code>.  Your implementation should return
  
  @param {Object} attrs The current data to validate.
  @param {Object} options A Backbone-like options object.
  @return {} False if the data is valid.  An error object otherwise.
  @see Parse.Object#set