docs: final KeyAwareLockPromise lockOrRegisterBackupLock(TxInvocationContext<?> ctx, Object key, long lockTimeout)
           throws InterruptedException {
        switch (cdl.getCacheTopology().getDistribution(key).writeOwnership()) {
           case PRIMARY:
              if (trace) {
                 getLog().tracef("Acquiring locks on %s.", toStr(key));
              }
              return checkPendingAndLockKey(ctx, key, lockTimeout);
           case BACKUP:
              if (trace) {
                 getLog().tracef("Acquiring backup locks on %s.", key);
              }
              ctx.getCacheTransaction().addBackupLockForKey(key);
           default:
              return KeyAwareLockPromise.NO_OP;
        }
     }