code: public void renew(final Txn<T> newTxn) {
      if (SHOULD_CHECK) {
        requireNonNull(newTxn);
        checkNotClosed();
        this.txn.checkReadOnly(); // existing
        newTxn.checkReadOnly();
        newTxn.checkReady();
      }
      checkRc(LIB.mdb_cursor_renew(newTxn.pointer(), ptrCursor));
      this.txn = newTxn;
    }
docs: Renew a cursor handle.
  
  <p>
  A cursor is associated with a specific transaction and database. Cursors
  that are only used in read-only transactions may be re-used, to avoid
  unnecessary malloc/free overhead. The cursor may be associated with a new
  read-only transaction, and referencing the same database handle as it was
  created with. This may be done whether the previous transaction is live or
  dead.
  
  @param newTxn transaction handle