Add the olive oil to a saucepan and heat over medium heat, add the shallots and sauté until softened. (You don’t want them to brown).
Once the shallots are soft, add the tomatoes and cook for about 5 minutes or until they are just starting to soften; add the sugar, salt, balsamic, rosemary, thyme, and peppercorns (I put the rosemary, thyme, and peppercorns in cheesecloth for easy removal). Bring to a simmer, reduce heat and simmer, stirring occasionally until the jam has thickened.
Now here’s where you get to make decisions: I decided I wanted mine smooth with no seeds and no onion pieces, so when it was almost as thick as I thought it should be, I put it through a fine sieve, pushing it through the holes with a rubber spatula until the seeds remained and all the pulp went into the bowl, if you don’t care about seeds and such, skip this step and simply remove the herb packet (which now hope you used otherwise you are going to have a hecka time trying to get those peppercorns out). Once strained, add back to the pan and cook to your desired constancy.
In my case and with my tomatoes, it was pretty much hands-off with the cooking until an hour had passed and then it started getting pretty thick and needed to be stirred about every 5 minutes until it was an hour and a half in, then I strained it and cooked it 15 minutes longer.
Let it cool on the stove, then put into a covered container and refrigerate (or serve immediately). It should hold for about 3 – 5 days in the refrigerator.