as far as I know this is the common way with upserting vector stores. You basically want to use metadata as much as possible to granulate the chunks, in order to minimize what is being deleted and re-inserted when updating.
Our community member @octionic made a pretty neat Youtube video about that if you want to check it out (he uses Supabase though but the concept is the same)