code: @Override
      public final void persistLock(final Transaction transaction) throws ProtocolException, TransactionException, SevereMessageStoreException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "persistLock", transaction);
  
          if (null != transaction)
          {
              PersistentTransaction mstran = (PersistentTransaction) transaction;
              cmdPersistLock(mstran);
              getTuple().setLockID(getLockID());
              final Task task = new PersistLock(this);
              mstran.addWork(task);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "persistLock");
      }
docs: Use this to lock persistently. Invoke indirectly by the API.
  
  @param transaction
  
  @exception ProtocolException
  Thrown if an add is attempted when the
  transaction cannot allow any further work to be added i.e. after
  completion of the transaction.
  @exception TransactionException
  Thrown if an unexpected error occurs.
  @throws SevereMessageStoreException