'Insert a new row from the given values.
Parameters
pos : int
Position at which to insert row
vals : list or tuple
List of values to insert into a new row
columns : list
Table column references'

def insert_row(self, pos, vals, columns):

    key = ([None] * len(self.columns))
    for (i, col) in enumerate(columns):
        try:
            key[i] = vals[self.col_position(col.info.name)]
        except ValueError:
            continue
    num_rows = len(self.columns[0])
    if (pos < num_rows):
        self.data.shift_right(pos)
    self.data.add(tuple(key), pos)
