code: function (items, options) {
              options = options || {};
              var isArr = isArray(items), Self = this;
              return this._checkTransaction(options, function () {
                  return asyncArray(items)
                      .map(function (o) {
                          if (!isInstanceOf(o, Self)) {
                              o = new Self(o);
                          }
                          return o.save(null, options);
                      })
                      .chain(function (res) {
                          return isArr ? res : res[0];
                      });
              });
          }
docs: Save either a new model or list of models to the database.
  
  @example
  var Student = patio.getModel("student");
  Student.save([
  {
  firstName:"Bob",
  lastName:"Yukon",
  gpa:3.689,
  classYear:"Senior"
  },
  {
  firstName:"Greg",
  lastName:"Horn",
  gpa:3.689,
  classYear:"Sohpmore"
  },
  {
  firstName:"Sara",
  lastName:"Malloc",
  gpa:4.0,
  classYear:"Junior"
  },
  {
  firstName:"John",
  lastName:"Favre",
  gpa:2.867,
  classYear:"Junior"
  },
  {
  firstName:"Kim",
  lastName:"Bim",
  gpa:2.24,
  classYear:"Senior"
  },
  {
  firstName:"Alex",
  lastName:"Young",
  gpa:1.9,
  classYear:"Freshman"
  }
  ]).chain(function(users){
  //work with the users
  });
  
  Save a single record
  MyModel.save(m1);
  
  @param {patio.Model|Object|patio.Model[]|Object[]} record the record/s to save.
  @param {Object} [options] additional options.
  @param {Boolean} [options.transaction] boolean indicating if a transaction should be used when
  saving the models.
  
  @return {comb.Promise} called back with the saved record/s.