docs: static Object compareAndSwap(EntryView.ReadWriteEntryView<?, CounterValue> entry,
           CounterValue value, ConfigurationMetadata metadata, long expected, long update) {
        long retVal = value.getValue();
        if (expected == retVal) {
           if (metadata.get().type() == CounterType.BOUNDED_STRONG) {
              if (update < metadata.get().lowerBound()) {
                 return CounterState.LOWER_BOUND_REACHED;
              } else if (update > metadata.get().upperBound()) {
                 return CounterState.UPPER_BOUND_REACHED;
              }
           }
           entry.set(CounterValue.newCounterValue(update, CounterState.VALID), metadata);
           return retVal;
  
        } else {
           return retVal;
        }
     }