'Stores and caches a compressed and pickled serialization of
the given block structure.
The data stored includes the structure\'s
block relations, transformer data, and block data.
Arguments:
block_structure (BlockStructure) - The block structure
that is to be cached and stored.'

def add(self, block_structure):

    serialized_data = self._serialize(block_structure)
    bs_model = self._update_or_create_model(block_structure, serialized_data)
    self._add_to_cache(serialized_data, bs_model)
