The Synapse docs
suggest doing batch annotations through a fileview. However, it is often simpler to
modify or set new annotations directly given a table of just the entities (rows) and props (cols) we want.
This is like how schematic works, except without any validation (so works best for power-users who know the data model well).
Some desired defaults are taken into account, such as not submitting key-values with NA
and empty strings.