Yes Oracle does not allow FROM clause in an UPDATE statement however it allows to have multiple columns in set clause as

UPDATE MAIN m
SET (col1,col2) =
(
SELECT s.col1,s.col2
FROM SIBLING s
WHERE m.key1 = s.key1
AND m.key2 = s.key2
AND m.key3 = s.key3
);