code: @Override
  	public void undo(Transaction tx) {
  		Buffer buff = tx.bufferMgr().pin(blk);
  		
  		LogSeqNum lsn = tx.recoveryMgr().logSetValClr(this.txNum, buff, offset, val, this.lsn);
  		VanillaDb.logMgr().flush(lsn);
  		
  		buff.setVal(offset, val, tx.getTransactionNumber(), null);
  		tx.bufferMgr().unpin(buff);
  		// Note that UndoNextLSN should be set to this log record's lsn in order
  		// to let RecoveryMgr to skip this log record. Since this record should
  		// be undo by the Clr append there.
  		// Since Clr is Undo's redo log , here we should log
  		// old val setVal log to make this undo procedure be redo during
  		// repeat history
  
  	}
docs: Replaces the specified data value with the value saved in the log record.
  The method pins a buffer to the specified block, calls setInt to restore
  the saved value (using a dummy LSN), and unpins the buffer.
  
  @see LogRecord#undo(Transaction)