code: function(template, getterName, setterName) {
      this.addOverride(template, function(relationKey) {
        var getter = getterName && function() {
          var relation = this[relationKey];
          return relation[getterName](this);
        };
        var setter = setterName && function(value) {
          var relation = this[relationKey];
          return relation[setterName](this, value);
        };
        return property(getter, setter);
      });
    }
docs: A helper for a setter that can be used with
  {@link BaseRelation#overrideProperty}.
  
  @function BaseRelation~SetterOverride
  @param {Model} instance The model instance on which to operate.
  @param {Object} value The value to set.
   
  Allows subclasses to add a property override from their implementation of
  {@link BaseRelation#overrides}.
  
  This is the same as {@link BaseRelation#addHelper}, but for properties.
  
  @method
  @protected
  @param {String} template
  @param {String} [getterName] The name of the
  {@link BaseRelation~GetterOverride} call on the relation.
  @param {String} [setterName] The name of the
  {@link BaseRelation~SetterOverride} call on the relation.
  @return {BaseRelation~Override}
  @see {@link BaseRelation#addOverride}