PostImage, PreImage and Target all translate to Entity.
e.g.
Entity myEntity = new Entity("new_entityname");
myEntity["attriubteName"] = "String Data";
Guid returnId = service.Create(myEntity);
The author of the article above suggested that in order to avoid his issues you should not edit and update the context.PostEntityImage["PostImageKey"] directly but map the attributes you want to update to a new Entity like so
//context post image Entity
Entity postMessageImage = (Entity)context.PostEntityImages["PostImage"];
//new Entity
Entity myEntity = new Entity("new_entityname");
//map and update
myEntity["attriubteName"] = postMessageImage["attributeName"];
myEntity["attriubteId"] = postMessageImage["attributeId"];
service.Update(myEntity);