code: public boolean unlock(KeyColumn kc, T requestor) {
  
          if (!locks.containsKey(kc)) {
              log.info("Local unlock failed: no locks found for {}", kc);
              return false;
          }
  
          AuditRecord<T> unlocker = new AuditRecord<>(requestor, null);
  
          AuditRecord<T> holder = locks.get(kc);
  
          if (!holder.equals(unlocker)) {
              log.error("Local unlock of {} by {} failed: it is held by {}",
                      kc, unlocker, holder);
              return false;
          }
  
          boolean removed = locks.remove(kc, unlocker);
  
          if (removed) {
              expiryQueue.remove(kc);
              if (log.isTraceEnabled()) {
                  log.trace("Local unlock succeeded: {} namespace={} txn={}",
                          kc, name, requestor);
              }
          } else {
              log.warn("Local unlock warning: lock record for {} disappeared "
                  + "during removal; this suggests the lock either expired "
                  + "while we were removing it, or that it was erroneously "
                  + "unlocked multiple times.", kc);
          }
  
          // Even if !removed, we're finished unlocking, so return true
          return true;
      }
docs: Release the lock specified by {@code kc} and which was previously
  locked by {@code requestor}, if it is possible to release it.
  
  @param kc        lock identifier
  @param requestor the object which previously locked {@code kc}