code: function _delete (args) {
      // make sure args is object
      args = requireValidOptionalObject(args)
      // model must allow delete
      if (!defined(this.model.columns.d)) {
          throw this.error('delete not supported')
      }
      // instance must not already be deleted
      if (this.isDeleted) {
          throw this.error('record already deleted')
      }
      // check access to delete unless allow set
      if (!args.allow) {
          // get global access control instance
          var accessControl = ImmutableAccessControl.getGlobal()
          // check access
          var allow = accessControl.allowModel({
              action: 'delete',
              model: this.model.name,
              scope: this.scope,
              session: this.session,
          })
          // throw access denied error if not allowed
          if (!allow) {
              httpError(403, null, accessControl.audit)
          }
      }
      // set d(eleted) flag true
      args.delete = true
      // use update method to empty
      return this.updateMeta(args)
  }
docs: @function _delete
  
  set deleted property to true
  
  @param {object} args
  
  @returns {Promise}