"Do the simplest thing that works."
If you end up with more framework code than instance code, you've wasted your time. If you end up with only one way of saving things because it's sufficient, then you've wasted your time. If you get all the way through your framework implementation, and then when it's time to do a second instance implementation you discover that your frameork is too inflexible to add a second instance easily, then you've wasted your time.
I don't usually generalize something until the second or third time I do the same kind of functionality.