docs: @Override
      public boolean offer(final E e) {
          requireNonNull(e, ILLEGAL_ELEMENT);
  
          Supplier<Boolean> offerElement = () -> {
              if (size == 0) {
                  ringBuffer[tailIndex] = e;
                  modificationsCount++;
                  size++;
              } else if (size == maxSize) {
                  headIndex = nextIndex(headIndex);
                  tailIndex = nextIndex(tailIndex);
                  ringBuffer[tailIndex] = e;
                  modificationsCount++;
              } else {
                  tailIndex = nextIndex(tailIndex);
                  ringBuffer[tailIndex] = e;
                  size++;
                  modificationsCount++;
              }
              return true;
          };
          return writeConcurrently(offerElement);
      }