code: function onConflictPut(putObj, schema, table) {
    var insert, update;
  
    if (schema) {
      insert = knex.withSchema(schema).table(table).insert(putObj);
    } else {
      insert = knex.table(table).insert(putObj);
    }
  
    update = knex.queryBuilder().update(putObj);
  
    return raw('? ON CONFLICT (id) DO ? returning *', [insert, update])
      .then(() => putObj);
  }
docs: Given a key (id), data, which column that
  data lives at, a schema and a table a `NO
  CONFLICT` insert is executed
  
  TODO: BETTER COMMENT https://github.com/clay/amphora-storage-postgres/pull/7/files/16d3429767943a593ad9667b0d471fefc15088d3#diff-6a1e11a6146d3a5a01f955a44a2ac07a
  
  @param {Object} putObj
  @param {String} schema
  @param {String} table
  @returns {Promise}