For row stores, the multi-version concurrency control strategy creates new row versions for updates. The versions are only kept in memory and only stay around as long as a running transaction might need them.
For column stores, updates are done as deletes followed by inserts. A bit in a bitmap is set to mark a row deleted from its segment. At some future point, the columnstore background merger may rewrite the segments and reclaim space for deleted rows. Typically, when 1/8 of the rows are deleted that will trigger the merger, though the merger may be triggered for other reasons. See Columnstore · SingleStore Documentation for more about the merger.