code: func (tx *tx) create(table string, o api.StoreObject) error {
  	if tx.lookup(table, indexID, o.GetID()) != nil {
  		return ErrExist
  	}
  
  	copy := o.CopyStoreObject()
  	meta := copy.GetMeta()
  	if err := touchMeta(&meta, tx.curVersion); err != nil {
  		return err
  	}
  	copy.SetMeta(meta)
  
  	err := tx.memDBTx.Insert(table, copy)
  	if err == nil {
  		tx.changelist = append(tx.changelist, copy.EventCreate())
  		o.SetMeta(meta)
  	}
  	return err
  }
docs: // create adds a new object to the store.
  // Returns ErrExist if the ID is already taken.