you haven't shown how that would be done in your one-to-many table, either
besides qty_on_hand, something else that may vary by size is the price
now, if you try the same approach, and have a separate one-to-many table for prices, with productid and price as the columns, you immediately run into a problem -- how to match the correct price to each size
follow this line of reasoning far enough, and you will eventually discover another approach altogether, and that is not to have a single product row and then mangle the sizes and prices and other variable stuff in some way, but simply to have everything in the products table
thus, if the t-shirt comes in S, M, L, and XL, then there will be 4 rows in the product table
which is what adrock said... "They would all have the same name but with a different product id"
often, the simplest solutions are the best