I really don't understand exactly what you want.
You are saying (as I read it) that you not only want to update existing records but to insert new records as part of one process?????????
But that simply isn't possible.
Now if all you want to do is to update field3 if it is empty then you need to do the sql I gave above.
If you want to replace contents of fields 1 & 2 but only replace the contents of field 3 if it is empty then I don't think you are going to be able to do this with one query, it will take 2 queries, one to replace field1&2 in ALL records, and a second to replace field3 if it is empty (ie WHERE field3='')
Until you can make yourself a little clearer as to what you want to do, its pretty hard to offer any real advice.