docs: def save(self, obj):
          """Save current instance - as per the gludb spec."""
          cur = self._conn().cursor()
  
          tabname = obj.__class__.get_table_name()
  
          index_names = obj.__class__.index_names() or []
  
          col_names = ['id', 'value'] + index_names
          value_holders = ['%s'] * len(col_names)
          updates = ['%s = EXCLUDED.%s' % (cn, cn) for cn in col_names[1:]]
  
          if not obj.id:
              id = uuid()
              obj.id = id
  
          query = 'insert into {0} ({1}) values ({2}) on conflict(id) do update set {3};'.format(
              tabname,
              ','.join(col_names),
              ','.join(value_holders),
              ','.join(updates),
          )
  
          values = [obj.id, obj.to_data()]
  
          index_vals = obj.indexes() or {}
          values += [index_vals.get(name, 'NULL') for name in index_names]
  
          with self._conn() as conn:
              with conn.cursor() as cur:
                  cur.execute(query, tuple(values))