code: public boolean txnCommitOffer(long itemId, Data data, boolean backup) {
          QueueItem item = txMap.remove(itemId);
          if (item == null && !backup) {
              throw new TransactionException("No reserve: " + itemId);
          } else if (item == null) {
              item = new QueueItem(this, itemId, data);
          }
          item.setData(data);
          if (!backup) {
              getItemQueue().offer(item);
              cancelEvictionIfExists();
          } else {
              getBackupMap().put(itemId, item);
          }
          if (store.isEnabled() && !backup) {
              try {
                  store.store(item.getItemId(), data);
              } catch (Exception e) {
                  logger.warning("Exception during store", e);
              }
          }
          return true;
      }
docs: Sets the data of a reserved item and commits the change so it can be
  visible outside a transaction.
  The commit means that the item is offered to the queue if
  {@code backup} is false or saved into a backup map if {@code backup} is {@code true}.
  This is because a node can hold backups for queues on other nodes.
  Cancels the queue eviction if one is scheduled.
  
  @param itemId the ID of the reserved item
  @param data   the data to be associated with the reserved item
  @param backup if the item is to be offered to the underlying queue or stored as a backup
  @return {@code true} if the commit succeeded
  @throws TransactionException if there is no reserved item with the {@code itemId}