code: def write_tables(target, tables, append=False, overwrite=False, **kwargs):
      
      from ligo.lw.ligolw import (Document, LIGO_LW, LIGOLWContentHandler)
      from ligo.lw import utils as ligolw_utils
  
      # allow writing directly to XML
      if isinstance(target, (Document, LIGO_LW)):
          xmldoc = target
      # open existing document, if possible
      elif append:
          xmldoc = open_xmldoc(
              target, contenthandler=kwargs.pop('contenthandler',
                                                LIGOLWContentHandler))
      # fail on existing document and not overwriting
      elif (not overwrite and isinstance(target, string_types) and
            os.path.isfile(target)):
          raise IOError("File exists: {}".format(target))
      else:  # or create a new document
          xmldoc = Document()
  
      # convert table to format
      write_tables_to_document(xmldoc, tables, overwrite=overwrite)
  
      # write file
      if isinstance(target, string_types):
          kwargs.setdefault('gz', target.endswith('.gz'))
          ligolw_utils.write_filename(xmldoc, target, **kwargs)
      elif isinstance(target, FILE_LIKE):
          kwargs.setdefault('gz', target.name.endswith('.gz'))
          ligolw_utils.write_fileobj(xmldoc, target, **kwargs)
docs: Write an LIGO_LW table to file
  
      Parameters
      ----------
      target : `str`, `file`, :class:`~ligo.lw.ligolw.Document`
          the file or document to write into
  
      tables : `list`, `tuple` of :class:`~ligo.lw.table.Table`
          the tables to write
  
      append : `bool`, optional, default: `False`
          if `True`, append to an existing file/table, otherwise `overwrite`
  
      overwrite : `bool`, optional, default: `False`
          if `True`, delete an existing instance of the table type, otherwise
          append new rows
  
      **kwargs
          other keyword arguments to pass to
          :func:`~ligo.lw.utils.load_filename`, or
          :func:`~ligo.lw.utils.load_fileobj` as appropriate