MySQL trigger: if record exists just update
check if the user has already reviewed the same product. If so, just update the fields score, title, comment and last_modified.


No trigger! Use INSERT .. ON DUPLICATE KEY UPDATE.

INSERT INTO reviews (reviewer, 
                     product, 
                     score, 
                     title, 
                     comment, 
                     creation_date, 
                     last_modified)
VALUES (@reviewer, 
        @product, 
        @score, 
        @title, 
        @comment, 
        @creation_date, 
        @last_modified)
ON DUPLICATE KEY UPDATE score = VALUES(score),
                        title = VALUES(title),
                        comment = VALUES(comment)
                        last_modified = VALUES(last_modified);


Additionally - define creation_date field as DEFAULT CURRENT_TIMESTAMP and last_modified field as DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, then remove them from all INSERT/UPDATE queries - they will be updated automatically.