def METHOD_NAME(self, filename, tablename, mode='w', metadata=None):
    #TODO - write me / re-evaluate. This should be cluster aware and use h5r file. Ragged array logic belongs in h5rfile
    from PYME.IO import h5rFile
    import json
    with h5rFile.H5RFile(filename, mode) as h5f:
        for item in self:
            item_js = self._jsify(item)
            if not isinstance(item_js, str):
                item_js = json.dumps(item_js)
            h5f.appendToTable(tablename, item_js.encode())
        # handle metadata
        if metadata is not None:
            h5f.updateMetadata(metadata)