@Override
    public V putIfAbsent(final K key,
                         final V value) {
        Objects.requireNonNull(key, "key cannot be null");
        final V currentValue = maybeMeasureLatency(
            () -> outerValue(wrapped().putIfAbsent(keyBytes(key), serdes.rawValue(value))),
            time,
            putIfAbsentSensor
        );
        maybeRecordE2ELatency();
        return currentValue;
    }
@Test
    public void shouldThrowNullPointerOnPutIfAbsentIfKeyIsNull() {
        setUpWithoutContext();
        assertThrows(NullPointerException.class, () -> metered.putIfAbsent(null, VALUE));
    }