<table class="messages">
<!-- This is the template for a single message -->
<tr id="esme.message" style="visibility:hidden">
<td id="esme.message.body">This is a test message</td>
<td id="esme.message.tags">tag1, tag2</td>
<td id="esme.message.from">dhague</td>
</tr>
<!-- end template -->
</table>
The client side event handler which reacts to the comet.render() would then just parse the JSON, insert it into a copy of the template, and then add that copy below the template itself in the DOM, with visibility set to "visible".
This approach keeps all of the Comet-related markup in the client HTML, and a designer needs only to toggle style="visibility:hidden" to style="visibility:visible" to see how a message would look.
Cheers,
Darren