code: public boolean put(T record) throws InterruptedException {
      boolean offered = this.blockingQueue.offer(record, this.timeout, this.timeoutTimeUnit);
      if (this.queueStats.isPresent()) {
        this.queueStats.get().putsRateMeter.mark();
      }
      return offered;
    }
docs: Put a record to the tail of the queue, waiting (up to the configured timeout time)
  for an empty space to become available.
  
  @param record the record to put to the tail of the queue
  @return whether the record has been successfully put into the queue
  @throws InterruptedException if interrupted while waiting