onBeforePut

Implementations should not execute any complex logic,
including locking, networking or cache operations,
as it may lead to deadlock, since this method is called
from sensitive synchronization blocks.

This method should not throw any exception.

IMPORTANT: for this method to take affect, newVal and
the returned value have to be different instances. I.e., you should
not mutate newVal directly, but instead create a copy, update
it and then return from the interceptor.