In answer to your original question - yes and no!
Yes - the Flash memory you are using needs to be erased before it is written but...
No - you don't need to do the erase for *every* write.
HOWEVER there are a number of things to remember when using the Flash memory on that chip in this way. First is that there are only 4096 words of Flash altogether, and only 128 of 'high endurance' Flash at the top addresses of that. Therefore however much space you use as "EEPROM" takes away from your program space.
When you erase the Flash memory, you must do so in rows of 32 words.
Also you have to write to the Flash a row at a time. However there is a 'trick' you can use: erasing a memory location sets it to all '1' bits, and a write will transform the '1's to '0' as appropriate. Therefore it is possible with careful programming - remember you have a very limited programming space - to update the complete row to be written by adding your new value to a previously "unwritten" address.
Finally, remember that the normal Flash as a minimum endurance of 10K Erase/Write cycles and even the 'high endurance' Flash has 100K Erase/Write cycles. This mainly refers to the 'erase' operation and, again if you are careful, you can write a few more times than that (but only to convert the '1's to '0's as mentioned).
Susan