generic create or update is finalised