code: func (b Bucket) Put(k [][]byte, v []byte) error {
  	bb, err := b.CreateBucketIfNotExists(k[:len(k)-1])
  	if err != nil {
  		return errorsp.WithStacksAndMessage(err, "CreateBucketIfNotExists %q failed", string(bytes.Join(k[:len(k)-1], []byte(" "))))
  	}
  	return errorsp.WithStacks(bb.Bucket.Put(k[len(k)-1], v))
  }
docs: // Put sets the value for a key in the bucket. If the key exist then its
  // previous value will be overwritten. Supplied value must remain valid
  // for the life of the transaction. Returns an error if the bucket was
  // created from a read-only transaction, if the key is blank, if the key
  // is too large, or if the value is too large.