postProcess = function postProcess(result) {
      var record = opts.raw ? result.data : result;

      if (record) {
        utils.deepMixIn(_this5, record);

        _this5.commit();
      }

      return result;
    }
Delegates to {@link Mapper#create} or {@link Mapper#update}.

@example
import { Container } from 'js-data';
import { RethinkDBAdapter } from 'js-data-rethinkdb';

const store = new Container();
store.registerAdapter('rethink', new RethinkDBAdapter(), { default: true });
store.defineMapper('session');
const session = store.createRecord('session', { topic: 'Node.js' });

// Create a new record in the database
session.save().then(() => {
  console.log(session.id); // 1234

  session.skill_level = 'beginner';

  // Update the record in the database
  return session.save();
});

@method Record#save
@param {object} [opts] Configuration options. See {@link Mapper#create} and
{@link Mapper#update}.
@param {boolean} [opts.changesOnly] Equality function. Default uses `===`.
@param {Function} [opts.equalsFn] Passed to {@link Record#changes} when
`opts.changesOnly` is `true`.
@param {array} [opts.ignore] Passed to {@link Record#changes} when
`opts.changesOnly` is `true`.
@returns {Promise} The result of calling {@link Mapper#create} or
{@link Mapper#update}.
@since 3.0.0