docs: @Override
    public PutOperation<K, V> applyOperation(K key, PutOperation<K, V> existing, Operation<K, V> operation) {
      if (existing != null && operation.timeStamp() >= existing.expirationTime()) {
        existing = null;
      }
  
      final Result<K, V> newValue = operation.apply(existing);
      if (newValue == null) {
        return null;
      } else if (newValue == existing) {
        return existing;
      } else {
        return newValue.asOperationExpiringAt(calculateExpiryTime(key, existing, operation, newValue));
      }
    }