docs: function(options) {
        var notTrackingResponse, url,
          deferred = new $.Deferred(),
          formModel = this;
        options = options || {};
        _.defaults(options, {
          rollback: true,
          force: true
        });
        try {
          url = _.result(formModel, 'url');
        } catch (e) {
          // no url attached to this form model. Continue by pushing to models.
        }
        if (url) {
          return NestedModel.prototype.save.apply(formModel, arguments).done(function() {
            formModel.push();
          });
        } else if (this.isTrackingAnyObjectModel()) {
          this.__saveToModels(deferred, options);
          return deferred.promise();
        } else {
          // Return a response that is generated when this form model is not tracking an object model
          notTrackingResponse = {
            'none': {
              success: false,
              response: [{
                responseJSON: {
                  generalReasons: [{messageKey: 'no.models.were.bound.to.form'}]
                }
              }]
            }
          };
          this.trigger('save-fail', notTrackingResponse);
          return (new $.Deferred()).reject(notTrackingResponse).promise();
        }
      }