In principle, yes.
However, in this case, the solution is rather simple. Take a look at this example:
#Ship Classes
$Name: GTF Ulysses
+nocreate
$Flags: ( "show ship" )
+noreplace
$Name: GTF Hercules
+nocreate
$Flags: ( "show ship" )
+noreplace
#End
This tbm, if saved as, say, showship-shp.tbm (note the -shp part, it's important) will switch on the cockpits for the Ulysses and the Hercules Mk 1. However, not all ships have cockpits at the moment.
An explanation: the -shp part in the filename tells the engine that the following data should be used to modify ships.tbl.
$Name tells the engine which entry to modify, +nocreate tells the engine that the following data should be used to modify an existing entry instead of overwriting an old one or creating a new one. Then comes the data we wish to alter, in this case, only the $Flags field. This has a modifier of its own, called +noreplace, which means that these flags should be added to the existing flags, instead of overwriting the old flags list.