code: func (b *Bucket) CreateBucketIfNotExists(key []byte) (*Bucket, error) {
  	child, err := b.CreateBucket(key)
  	if err == ErrBucketExists {
  		return b.Bucket(key), nil
  	} else if err != nil {
  		return nil, err
  	}
  	return child, nil
  }
docs: // CreateBucketIfNotExists creates a new bucket if it doesn't already exist and returns a reference to it.
  // Returns an error if the bucket name is blank, or if the bucket name is too long.
  // The bucket instance is only valid for the lifetime of the transaction.