docs: function initModelUpdate (args) {
      var controller = this
      var model = this.model
      // if model does not have id column then cannot use default controller
      if (!model.columnName('id') || !model.columnName('parentId')) {
          return
      }
      // get accountId column
      var accountIdColumn = model.columnName('accountId') 
      // set role to authenticated if model requires account id
      var role = args.defaultRole || (accountIdColumn && model.columns[accountIdColumn].null === false ? 'authenticated' : 'all')
      // index inputs
      var input = {
          // get current revision of instance
          current: 'query.current',
          // get record even if deleted
          deleted: 'query.deleted',
          // ignore conflicts
          force: 'query.force',
          // instance id
          id: 'params.id',
          // merge update data into existing data
          merge: 'query.merge',
          // input data includes meta columns
          meta: 'query.meta',
      }
      // instance data is in body under model name
      input[model.name] = 'body.'+model.name
      // create path for PUT for API requests
      if (!this.paths['/:id']) {
          this.paths['/:id'] = {}
      }
      // create path for POST for form requests
      if (!this.paths['/:id/update']) {
          this.paths['/:id/update'] = {}
      }
      // add handler for PUT /:id and POST /:id/update
      // to update instance
      this.paths['/:id'].put = this.paths['/:id/update'].post = [
          {
              before: function (args) {
                  // load model
                  return loadRecordForUpdate(controller, args)
              },
  
              input: input,
              method: function (args) {
                  // perform update
                  return update(controller, args)
              },
              methodName: 'update',
              role: role,
              template: 'instance',
          },
      ]
  }