code: function createMeta (args) {
      // resolve relation name to spec - will throw error if cant be resolved
      var relation = this.model.relation(args.relation)
      // args for creating related model
      var relatedArgs = {
          catch: false,
          data: args.data,
          session: args.session || this.session,
      }
      // add ids
      relatedArgs[this.model.columnName('id')] = this.id
      relatedArgs[this.model.columnName('originalId')] = this.originalId
      // create related model
      return relation.model.createMeta(relatedArgs)
      // create via model if any
      .then(related => {
          // if via model not specified then do not create
          if (!relation.viaModel) {
              return related
          }
          // args for via model
          var viaArgs = {
              session: defined(args.session) ? args.session : this.session,
          }
          // add id and original id for both instance and related models
          viaArgs[this.model.columnName('id')] = this.id
          viaArgs[this.model.columnName('originalId')] = this.originalId
          viaArgs[relation.model.columnName('id')] = related.id
          viaArgs[relation.model.columnName('originalId')] = related.originalId
          // create via model
          return relation.viaModel.createMeta(viaArgs)
          // resolve with related record
          .then(() => related)
      })
  }
docs: @function createMeta
  
  create related object
  
  @param {object} args
  
  @returns {Promise}
  
  @throws {Error}