The Punic Wars are relatively well documented, as far as ancient sources go. Of course, the problem of 'known unknowns' versus 'unknown unknowns' is a very real one the further you go back in human history. I'm not terribly qualified to speak about the Punic Wars specifically, since that is outside my area of expertise, but the fact that we know of not only the terrible defeat of Cannae, but also about the defeats at the Rhône, Ticinus, Trebbia, the Trasimene Lake, on the ager Falernus, Tarent and Capua and so on raises the question why our otherwise comparably extensive sources (in comparison to other periods of antiquity, both earlier and later) should be silent about other defeats.
But that's not the point I want to make. Because otherwise, you are quite correct - there are a lot of battles our sources are silent on. Not to mention the countless skirmishes that took place, or the battles that we know of by name only, but not the location (the attempt to locate the battle of the Teutoburg forest is probably one of the most famous example, not to mention the subsequent battle of Idistaviso, where Arminius was beaten), the exact time or the forces involved and losses of the parties. In the 2nd and 3rd century, we know of a few expeditions of Roman emperors beyond the limes into Germania, but there is considerable discussion about their extent, or if they really took place in the form the sources mention.
To give you a more concrete example, in the early 2000s the remnants of a battlefield at Harzhorn mountain in Nether Saxony, northern Germany, were discovered and subsequently excavated and analyzed. The battlefield contained Roman equipment, armor, weapons and so on, along with some artifacts of Germanic origin. In short, it is one of the best documented ancient battlefields in Europe. But we don't know the battle it belongs to.
Coins that have been found on the battlefield allow us to date the battle to some time in between 230 and 235, though, which leaves us with the convenient possibilities of the expedition of emperor Maximinus Thrax. But our literary sources on that expedition, despite being almost half a milennium closer to our time, do not tell us much about the expedition. The Historia Augusta simply tells us that
He [Maximinus] marched, then, into Germany across the Rhine, and throughout thirty or forty miles of the barbarians' country he burned villages, drove away flocks, slew numbers of the barbarians themselves, enriched his own soldiers, and took a host of captives, and, had not all the Germans fled to the swamps and forests, he would have brought all Germany under Roman sway.
An interesting point here is that the 'thirty or forty' was corrected from 'four hundred' in earlier manuscripts, because the editors didn't believe that Roman armies would be able to operate that deeply into Germanic territory in the third century. Herodian, on the other hand, a contemporary and rather more reliable historian, also reports about this expedition (in book 7, V.2), and even tells of a big engagement taking place in marsh- and swampland. But was it this battle? He also says that
other battles took place in which Maximinus won praise for his personal participation, for fighting with his own hands, and for being in every conflict the best man on the field.
We don't know anything more about these battles. But this is just one example. My favourite example for these type of unknown battle is a bit different. In 1992, an altar was excavated in Augsburg (the so called 'Augsburg victory altar'), Bavaria, that was erected in commemoration of a victorious battle Roman forces had fought in the province of Raetia against 'Iuthungian' raiders on their return from Italy, carrying booty as well as thousands of enslaved Italian citizens, around the year 260. The battle lasted for two days, and involved both the regular provincial army as well as auxiliary troops and levies, so it was no small affair. But before the discovery of this Altar, no one in modern history knew about this battle. It was simply completely unknown. So to answer your question, yes, there are battles out there, big ones too, that we know nothing about. This is quite certain. Our sources, especially on late antiquity, simply are not as extensive as to cover all of these. We know that there are unknowns. But archaeology tirelessly works on remedying this somewhat.
I'm reading that book now and I've got a follow up question: his main thesis is that the soldiers defeated at that battle later rallied under Scipio and helped smash Hannibal at Zama. I've been studying early rome a lot recently and have yet to come across either the OP's question or mine, as taken up by a prominent classicist.
So would a couple of the moderators who know this field be able to lend a hand?
Can you provide more details of O'Connell's claim? Without having read his work, the one thing that concerns me is that his background is as a historian not a classicist - so the question is can he read Latin or is he reliant on translations or secondary sources? If he's making the claim about whitewashing defeats then I'd hope he'd be able to back it up with original sources.
I typed this on mobile so please excuse any format ring errors. Also please let me know of any odd autocorrect errors so j can correct them.
Many ancient primary sources are fragmentary or have been through many layers of translation, some of which more dubious in their accuracy. It is entirely possible for a large battle to be unknown as in ancient history, there are minimal new sources to draw from.
Whitewashing as well in ancient historical texts did occur as was exaggeration. Polybius in discussing the Battle of Cannae blames the loss on the failings of a weak consul and the superiority of the Carthaginian cavalry, which he maintains as the sole reason for many of hannibals victories, extolling the virtues of superiority in cavalry.
"Thus it came about, as Hannibal had planned, that the Romans were caught between two hostile lines of Libyans---thanks to their impetuous pursuit of the Celts. Still they fought, though no longer in line, yet singly, or in maniples, which faced to meet those who charged them on the flanks."
"...but some few escaped into Venusia, among whom was Caius Terentius, the Consul, who thus sought a flight, as disgraceful to himself, as his conduct in office had been disastrous to his country."
"Such was the end of the battle of Cannae, in which both sides fought with the most conspicuous gallantry, the conquered no less than the conquerors."
"...the Carthaginians being on this occasion, as on previous ones, mainly indebted for their victory to their superiority in cavalry"
Many or their historians whitewash or exaggerate the facts, as often happens with Greek history, particularly Thucydides history of the Peloponnesian War. Thicydides remarked that the Athenians managed to continue to fight despite the massive defeat at Syracuse which crippled their army and navy.
"Nevertheless, as far as their means would stretch, it was thought best to stand it out and, getting materials and money where they could have it, to make ready a navy and to make sure of their confederates, especially those of Euboea; and to introduce a greater frugality in the city, and to erect a magistracy of the elder sort, as occasion should be offered to preconsult of the business that passed. [4] And they were ready, in respect of their present fear (as is the people's fashion), to order every thing aright. And as they resolved this, so they did it. And the summer ended."
Thucydides states that despite such a massive defeat, the Athenians were stalwart enough to continue to fight and defend their holdings.
In summation, yes there could be a large battle as of yet undiscovered however it is likely to remain so due to a lack of primary documentation and landmarks. And as for whitewashing, it was used in ancient historical texts however exaggeration was far more common, either to show the bravery of the people and troops in the face of defeat, or a victory over a massive foe.
Sources: Histories by Polybius
History of the Peloponnesian War by Thucydides
O' Connell is not an ancient historian, but a retired intelligence officer, and like most amateur historians writing popular books, at best you could say that there are much better books to read. If you want a retired intelligence officer/military officer who has actually become a good classicist, someone like Mary Sheldon would have to be your gold standard. O' Connell does not fit this bill unfortunately: this particular book is full of simplifications, inaccuracies, misunderstandings, incorrect translations, grammatical and methodological errors (Wheeler 631-2). As Wheeler said in his review, if you want an account of the Second Punic War/Cannae that you can actually trust, you need to look at Lazenby, Daly and if an overly 'academic' book isn't what you're looking for then (personally) I'd finally recommend Goldsworthy.
As such, any 'original' analysis of the primary sources done by O'Connell in his book should be taken with a wheelbarrow of salt, as (according to Wheeler, and he'd know) he is not much of a classicist. As /u/Astrogator has explained, we have accounts of something like 30+ Roman battles in the literary sources during the Second Punic War, of which quite a few in Italy were Roman defeats. There is no reason why more defeats should have been suffered that the Romans wouldn't own up to when they had already admitted so many. Roman persistence in the case of repeated defeat at the hands of Hannibal was a favourite theme of Roman writers, and more defeats may only have added to that 'spin' on the war.
I am going to say that it is basically impossible for there to have been something on the scale of Cannae during the Second Punic War that we know nothing about. We know of so many major Roman defeats throughout their history because the Romans have been careful to give us great detail on them in (Caudine Forks, Trebia, Trasimene, Cannae, Upper Baetis, Arausio, Carrhae, Teutoberg, Edessa, Adrianople, etcetc). In the Imperial period, there were instances where individual legions disappear from our record and there is an argument that they may have been destroyed in unrecorded or little-recorded defeats, such as in Armenia or Judea in the 2nd century AD. See a post I made on a particular 'missing legion' here, and /u/Astrogator's post in this thread, for more on that argument. But I have never seen any suggestion that large-scale Roman defeats, such as the destruction of one or more consular armies, have been ignored by the sources in the Republic.
It is academic orthodoxy in any analysis of Roman casualties in the Second Punic War (eg. Brunt 1971, de Ligt 2012) does not take into account any 'unknown' major defeats, because there is little to no evidence I am aware of for such a thing. I cannot imagine it being possible for anything remotely approaching a fraction of the soldiers who died at Cannae being defeated by Hannibal, whose campaign and battles in Italy are so well documented, would not be mentioned. Any number of soldiers beyond one (sometimes two) legions would be commanded by a consul, and it is beyond me why the defeat of a consul in a major battle, so often mentioned in accounts of Roman wars, would be 'whitewashed' in this instance. Essentially, I'd have to see exactly what 'whitewashing' in the sources O'Connelly is referring to in order to comment in more specifics, but I'm extremely skeptical and would not be remotely surprised that like many other source-based arguments he has apparently made in this book, he has misunderstood or misrepresented the evidence.
Review: Wheeler, Everett. "The Ghosts of Cannae: Hannibal and the Darkest Hour of the Roman Republic - By Robert L. O'Connell", The Historian, 2011, 631-2: online here.