Further use shows that the change from a "try" to an "if" statement breaks assignment to rows by row number, i.e.,
mytable[0] = (somedata)
throws ValueError.
maybe go back to try/except?  I guess one could also expand the if statement, but this seems less clean:
if item in self.colnames or isinstance(item, int)
-- Marten