Potrzebujesz zapytania, które sprawdza, czy istnieje jakikolwiek wiersz z Tobą record_id (lub person_id). Jeśli istnieje, zaktualizuj go, w przeciwnym razie wstaw nowy wiersz
IF EXISTS (SELECT * FROM table.person WHERE record_id='SomeValue')
UPDATE table.person
SET some_text='new_some_text', some_other_text='some_other_text'
WHERE record_id='old_record_id'
ELSE
INSERT INTO table.person (record_id, person_id, some_text, some_other_text)
VALUES ('new_record_id', 'new_person_id', 'new_some_text', 'new_some_other_text')
Innym lepszym podejściem jest
UPDATE table.person SET (...) WHERE person_id='SomeValue'
IF ROW_COUNT()=0
INSERT INTO table.person (...) VALUES (...)