the "empty feature group" creation should be something like : "save_or_insert" method where:
if the feature group doesn't exists it gets created and the data is written
if the feature group exists and the metadata doesn't match, then an error is thrown
if the feature group exists and the metadata match, then we insert the data