docs: def insert(self):
      """Insert the object into the database"""
      if not self.curs:
        raise LIGOLwDBError, "Database connection not initalized"
      if len(self.table) == 0:
        raise LIGOLwDBError, 'attempt to insert empty table'
      for tab in self.table.keys():
        # find and add any missing unique ids
        generate = []
        missingcols = [k for k in self.ldb.uniqueids[tab] 
          if k not in self.table[tab]['column']]
        for m in missingcols:
          generate.append(',BLOB(GENERATE_UNIQUE())')
          self.table[tab]['orderedcol'].append(m)
        # and construct the sql query
        self.table[tab]['query'] = ' '.join( 
          ['INSERT INTO', tab, '(', ','.join(self.table[tab]['orderedcol']), 
          ') VALUES (', ','.join(['?' for x in self.table[tab]['column']]) , 
          ''.join(generate), ')'])
      for tabtup in self.ldb.tables:
        tab = tabtup[0].lower()
        try:
          try: 
            self.curs.executemany(self.table[tab]['query'],
              self.table[tab]['stream'])
            rowcount = self.curs.rowcount
          except DB2.Error, e:
            self.curs.execute('rollback')
            msg = e[2] 
            msg += self.xml() + '\n' 
            msg += str(self.table[tab]['query']) + '\n' 
            msg += str(self.table[tab]['stream']) + '\n'
            raise LIGOLwDBError, msg
          except DB2.Warning, e:
            self.curs.execute('rollback')
            raise LIGOLwDBError, e[2]
          #except Exception, e:
          #  self.curs.execute('rollback')
          #  raise LIGOLwDBError, e[2]
        except KeyError:
          pass
      self.curs.execute('commit')
      return rowcount