update = async (tbl, obj, id, opts = Object.create(null)) => {
  const kvs = Object.entries(obj);
  if (kvs.length === 0) return;
  const assigns = kvs
    .map(([k, v], ix) => `"${sqlsanitize(k)}"=$${ix + 1}`)
    .join();
  let valList = kvs.map(([k, v]) => v);
  // TBD check that is correct - because in insert function opts.noid ? "*" : opts.pk_name || "id"
  //valList.push(id === "undefined"? obj[opts.pk_name]: id);
  valList.push(id === "undefined" ? obj[opts.pk_name || "id"] : id);
  const q = `update "${getTenantSchema()}"."${sqlsanitize(
    tbl
  )}" set ${assigns} where ${ppPK(opts.pk_name)}=$${kvs.length + 1}`;
  sql_log(q, valList);
  await getMyClient(opts).query(q, valList);
}
Update table records
@param {string} tbl - table name
@param {object} obj - columns names and data
@param {number|undefined} id - id of record (primary key column value)
@param {object} [opts = {}] - columns attributes
@returns {Promise<void>} no result