[eluser]webthink[/eluser]
So there you have it. I suppose the question you have to ask yourself is how big will the table get and how crucial is performance. INSERT ON DUPLICATE... is going to be miles faster and far more efficient and will have the added bonus of reducing your code to something far cleaner than any of the examples above. If however DB portability is a concern to you stick with the read then write pattern.
Somehow I doubt that CI will provide an AR method for this because it isn't supported by every db. What you could do if you wanted was write one that uses the INSERT ON DUPLICATE construct in the mysql driver but the read+write pattern in other DB's.