code: func (ds *datastore) DeleteTree(kvObject KVObject) error {
  	if ds.sequential {
  		ds.Lock()
  		defer ds.Unlock()
  	}
  
  	// cleanup the cache first
  	if ds.cache != nil {
  		// If persistent store is skipped, sequencing needs to
  		// happen in cache.
  		ds.cache.del(kvObject, kvObject.Skip())
  	}
  
  	if kvObject.Skip() {
  		return nil
  	}
  
  	return ds.store.DeleteTree(Key(kvObject.KeyPrefix()...))
  }
docs: // DeleteTree unconditionally deletes a record from the store