when using the volatile storage commence eviction only if there was actually a previous value

when using the persistent storage eviction is still always triggered ...
an extra call to storage.exist() should be done but it might impact performances
(even though set() commands and not required to be fast and are probably i/o bound)