code: def insert(
              self, M_c, T, X_L_list, X_D_list, new_rows=None, N_GRID=31,
              CT_KERNEL=0):
          
          if new_rows is None:
              raise ValueError("new_row must exist")
  
          if not isinstance(new_rows, list):
              raise TypeError('new_rows must be list of lists')
              if not isinstance(new_rows[0], list):
                  raise TypeError('new_rows must be list of lists')
  
          X_L_list, X_D_list, was_multistate = su.ensure_multistate(
              X_L_list, X_D_list)
  
          # get insert arg tuples
          arg_tuples = self.get_insert_arg_tuples(
              M_c, T, X_L_list, X_D_list, new_rows, N_GRID, CT_KERNEL)
  
          chain_tuples = self.mapper(self.do_insert, arg_tuples)
          X_L_list, X_D_list = zip(*chain_tuples)
  
          if not was_multistate:
              X_L_list, X_D_list = X_L_list[0], X_D_list[0]
  
          T.extend(new_rows)
          ret_tuple = X_L_list, X_D_list, T
          return ret_tuple
docs: Insert mutates the data T.