Update an existing object (identified by the object identifier) with
        the given modified object.

        Parameters
        ----------
        db_object : (Sub-class of)ObjectHandle
            Replacement object

def replace_object(self, db_object):
        """Update an existing object (identified by the object identifier) with
        the given modified object.

        Parameters
        ----------
        db_object : (Sub-class of)ObjectHandle
            Replacement object
        """
        # To enable provenance traces objects are not actually deleted from the
        # database. Instead, their active flag is set to False.
        obj = self.to_dict(db_object)
        obj['active'] = True
        self.collection.replace_one({'_id' : db_object.identifier, 'active' : True}, obj)