code: func (c *Connector) CreateIfNotExists(_ context.Context, ei *dosa.EntityInfo, values map[string]dosa.FieldValue) error {
  	c.lock.Lock()
  	defer c.lock.Unlock()
  
  	valsCopy := copyRow(values)
  	_, err := c.mergedInsert(ei.Def.Name, ei.Def.Key, valsCopy, func(into map[string]dosa.FieldValue, from map[string]dosa.FieldValue) error {
  		return &dosa.ErrAlreadyExists{}
  	}, false)
  	if err != nil {
  		return err
  	}
  	for iName, iDef := range ei.Def.Indexes {
  		// this error must be ignored, so we skip indexes when the value
  		// for one of the index fields is not specified
  		_, _ = c.mergedInsert(iName, ei.Def.UniqueKey(iDef.Key), valsCopy, overwriteValuesFunc, false)
  	}
  	return nil
  }
docs: // CreateIfNotExists inserts a row if it isn't already there. The basic flow is:
  // Find the partition, if it's not there, then create it and insert the row there
  // If the partition is there, and there's data in it, and there's no clustering key, then fail
  // Otherwise, search the partition for the exact same clustering keys. If there, fail
  // if not, then insert it at the right spot (sort.Search does most of the heavy lifting here)