For the first example_
UPDATE tbl
SET colour = 'Yellow'
WHERE ProductID = 1
AND Colour = 'Red
You need to go back to the base table. Referring to red as colur 3 makes no sense. Let's say that Green instead was Violet. The Red is number 2, but it is still Red you want to replace with Yellow.
For the others:
INSERT tbl(ProductId, Colour)
SELECT V.ProductID, Colour
FROM (VALUES(2, 'Green')) AS V(ProductUD, Colour)
WHERE NOT EXISTS (SELECT *
FROM tbl t
WHERE t.ProductId = V.ProductID
AND t.Colour = V.Colour)