update (name, id, record, opts) {
    opts || (opts = {})
    return Container.prototype.update.call(this, name, id, record, opts)
      .then((result) => this._end(name, result, opts))
  }
Wrapper for {@link Mapper#update}. Adds the updated {@link Record} to the
store.

@example
import { SimpleStore } from 'js-data';
import { HttpAdapter } from 'js-data-http';

const store = new SimpleStore();
store.registerAdapter('http', new HttpAdapter(), { default: true });

store.defineMapper('post');

// Since this example uses the http adapter, we'll get something like:
//
//   PUT /post/1234 {"status":"published"}
store.update('post', 1, { status: 'published' }).then((post) => {
  // The post record has also been updated in the in-memory store
  console.log(store.get('post', 1234));
});

@fires SimpleStore#beforeUpdate
@fires SimpleStore#afterUpdate
@fires SimpleStore#add
@method SimpleStore#update
@param {string} name Name of the {@link Mapper} to target.
@param {(string|number)} id Passed to {@link Mapper#update}.
@param {object} record Passed to {@link Mapper#update}.
@param {object} [opts] Passed to {@link Mapper#update}. See
{@link Mapper#update} for more configuration options.
@returns {Promise} Resolves with the result of the update.
@since 3.0.0