pub fn apply_and_rollback<'a, I: IntoIterator<Item = &'a StorageLogWithPreviousValue>>(
        &mut self,
        logs: I,
    ) -> DeduplicatedWritesMetrics {
        let updates = self.process_storage_logs(logs);
        let metrics = self.metrics;
        self.rollback(updates);
        metrics
    }
Returns metrics as if provided storage logs are applied to the state.
It's implemented in the following way: apply logs -> save current metrics -> rollback logs.
core/lib/multivm/src/utils/deduplicator.rs