docs: def add(self, entries, table=None, columns=None, ignore=False):
          """Add entries to a table.
          The *entries* variable should be an iterable."""
          # Default table and columns #
          if table is None:   table   = self.main_table
          if columns is None: columns = self.get_columns_of_table(table)
          # Default columns #
          question_marks = ','.join('?' for c in columns)
          cols           = ','.join('"' + c + '"' for c in columns)
          ignore         = " OR IGNORE" if ignore else ""
          sql_command    = 'INSERT%s into "%s"(%s) VALUES (%s);'
          sql_command    = sql_command % (ignore, table, cols, question_marks)
          # Possible errors we want to catch #
          errors  = (sqlite3.OperationalError, sqlite3.ProgrammingError)
          errors += (sqlite3.IntegrityError, sqlite3.InterfaceError, ValueError)
          # Do it #
          try:
              new_cursor = self.own_connection.cursor()
              new_cursor.executemany(sql_command, entries)
          except errors as err:
              raise Exception(self.detailed_error(sql_command, columns, entries, err))
          except KeyboardInterrupt as err:
              print("You interrupted the data insertion.")
              print("Committing everything done up to this point.")
              self.own_connection.commit()
              raise err