sum(length) is correct only if the columns in the table don;t include a char or varchar.
So, if you have a char or varchar columns,
select sum(length) from syscat.columns where tabname="tablename" and tabschema="tableschema" and typename not in ('CHARACTER','VARCHAR')
this is your first sum.
then take each column that is a char or varchar and do
select avg(length(rtrim(column))) from tablename
these will be your second sum.
Add these two to get rowsize.
Hope this helps.