docs: @Override
    public void delete(ApiType obj) {
      String key = keyFunc.apply(obj);
      lock.lock();
      try {
        boolean exists = this.items.containsKey(key);
        if (exists) {
          this.deleteFromIndices(this.items.get(key), key);
          this.items.remove(key);
        }
      } finally {
        lock.unlock();
      }
    }