Saves the attributes without closing the attributes file.
        This should probably be called after the attribute holder
        sets/overrides the attributes in initialization as the del
        method is not guaranteed to be called.

def save_attributes(self):
        '''
        Saves the attributes without closing the attributes file.
        This should probably be called after the attribute holder
        sets/overrides the attributes in initialization as the del
        method is not guaranteed to be called.
        '''
        if not self.saveable():
            raise AttributeError("Cannot save attribute file without a valid file")
        if self._read_only:
            raise AttributeError("Cannot save read-only data")
        if not self._db_closed:
            self._fd.clear()
            for attr_name in self._saved_attrs:
                self._fd[attr_name] = getattr(self._target, attr_name)