One row per product. Colours are variants inside it, so nothing is listed twice. Optimising a product updates every colour at once; nothing reaches the store until you approve it.