code: async function validate (args) {
      // skip if model does not have id column
      if (!defined(this.columnName('id'))) {
          return
      }
      // debug
      debug('validate '+this.name)
      // make sure args is object
      args = requireValidOptionalObject(args)
      // make sure session is object
      args.session = requireValidOptionalObject(args.session)
      // set default session id
      if (!defined(args.session.sessionId)) {
          args.session.sessionId = '11111111111111111111111111111111'
      }
      // validate data and columns
      await this.validateData(args)
      // validate deleted status if d column created
      if (this.dColumnCreated) {
          await this.validateDeleted(args)
      }
  }
docs: @function validate
  
  iterates over all all rows in table and validates that column values match
  data values. if any values do not match they are updated.
  
  @param {object} args
  
  @returns {Promise}