code: func (z *zookeeperKV) Create(
  	key string,
  	val interface{},
  	ttl uint64,
  ) (*kvdb.KVPair, error) {
  	if ttl != 0 {
  		return nil, kvdb.ErrTTLNotSupported
  	}
  
  	bval, err := common.ToBytes(val)
  	if err != nil {
  		return nil, err
  	}
  	if len(bval) == 0 {
  		return nil, kvdb.ErrEmptyValue
  	}
  
  	err = z.createFullPath(key, false)
  	if err == zk.ErrNodeExists {
  		return nil, kvdb.ErrExist
  	} else if err != nil {
  		return nil, err
  	}
  
  	key = z.domain + normalize(key)
  	meta, err := z.client.Set(key, bval, -1)
  	if err != nil {
  		return nil, err
  	}
  	return z.resultToKvPair(key, bval, "create", meta), nil
  }
docs: // Creates a zk node only if it does not exist.