code: def _shift_rowcol(self, insertion_point, no_to_insert):
          
  
          # Shift row heights
  
          new_row_heights = {}
          del_row_heights = []
  
          for row, tab in self.row_heights:
              if tab > insertion_point:
                  new_row_heights[(row, tab + no_to_insert)] = \
                      self.row_heights[(row, tab)]
                  del_row_heights.append((row, tab))
  
          for row, tab in new_row_heights:
              self.set_row_height(row, tab, new_row_heights[(row, tab)])
  
          for row, tab in del_row_heights:
              if (row, tab) not in new_row_heights:
                  self.set_row_height(row, tab, None)
  
          # Shift column widths
  
          new_col_widths = {}
          del_col_widths = []
  
          for col, tab in self.col_widths:
              if tab > insertion_point:
                  new_col_widths[(col, tab + no_to_insert)] = \
                      self.col_widths[(col, tab)]
                  del_col_widths.append((col, tab))
  
          for col, tab in new_col_widths:
              self.set_col_width(col, tab, new_col_widths[(col, tab)])
  
          for col, tab in del_col_widths:
              if (col, tab) not in new_col_widths:
                  self.set_col_width(col, tab, None)
docs: Shifts row and column sizes when a table is inserted or deleted