My 2 cents:
Raster attribute tables are very tricky, as they are implemented differently for different image types. For example, with raw data formats like .bil, they are stored in an .aux/.aux.xml file. With .tiffs, the raster table is an RGB colormap table stored in the image header. ERDAS .img files look like more advanced tables, but I'm not sure you can successfully modify an .img's table because it is stored in the image itself. With grids, you may have better luck, as the table is a good old INFO table stored in the info folder parallel to the grid.
In general, I've found it best practice to only use the VALUE and COUNT fields and handle any other table information by joining to a separate lookup table. This generally makes more sense because most raster tools drop all variables from the output except VALUE and COUNT.
Your approach looks like it could be much more efficiently done (and perhaps with more success with non-grid formats, but I don't know...) by creating a lookup table in the in_memory workspace, populating it with a cursor, and then doing a Add Field / Add join / Calculate Field, or Join Field to copy the data over. But IMHO the separate ancillary data table is the most reliable path.