code: func (b *EtcdBackend) Create(ctx context.Context, item backend.Item) (*backend.Lease, error) {
  	var opts []clientv3.OpOption
  	var lease backend.Lease
  	if !item.Expires.IsZero() {
  		if err := b.setupLease(ctx, item, &lease, &opts); err != nil {
  			return nil, trace.Wrap(err)
  		}
  	}
  	start := b.clock.Now()
  	re, err := b.client.Txn(ctx).
  		If(clientv3.Compare(clientv3.CreateRevision(prependPrefix(item.Key)), "=", 0)).
  		Then(clientv3.OpPut(prependPrefix(item.Key), base64.StdEncoding.EncodeToString(item.Value), opts...)).
  		Commit()
  	txLatencies.Observe(time.Since(start).Seconds())
  	txRequests.Inc()
  	if err != nil {
  		return nil, trace.Wrap(convertErr(err))
  	}
  	if !re.Succeeded {
  		return nil, trace.AlreadyExists("%q already exists", string(item.Key))
  	}
  	return &lease, nil
  }
docs: // Create creates item if it does not exist