According to the exiv2 documentation, the Xmp.dc.subject field seems to be the "new" place to store keywords (apart from Iptc.Application2.Keywords)
Unfortunately, if multiple values get assigned to that field like so
image.xmp_data.add("Xmp.dc.subject", "kw1")
image.xmp_data.add("Xmp.dc.subject", "kw2")
image.write_metadata
only the value assigned last makes it into the actual file headers, the rest is lost.