There are two separate systems for ullage on the S-IVB (500 series only). The first one is used for the first start of the S-IVB during launch. Some information can be found in the AS-503 Saturn V Flight Manual, pages 6-31 and 6-32:
ULLAGE ROCKET SYSTEM
To provide propellant settling and thus ensure stable flow of lox and LH2 during J-2 engine start, the S-IVB stage requires a small acceleration. This acceleration is provided by two ullage rockets.
Each ullage rocket has a single grain, five point star configuration, internal burning, polymerized solid propellant that is case bonded in a 4134 steel case. The propellant weighs approximately 58.8 pounds and burns for 3.8 seconds, developing a thrust of 3390 pounds (175,000 feet, 70 degrees F).
ULLAGE ROCKET JETTISON SYSTEM
To reduce weight, the ullage rockets and their fairings are jettisoned after J-2 engine start.
For ullage thrust after orbital insertion and before TLI the S-IVB uses two ullage thrusters that are part of the Auxiliary Propulsion System. These thrusters are not jettisoned and they draw propellant from the same source as the attitude control thrusters. From pages 6-21 and 6-22 of the document linked above:
AUXILIARY PROPULSION SYSTEM
The S-IVB auxiliary propulsion system provides three axis stage attitude control and main stage propellant control during coast flight.
Nitrogen tetroxide (N2O4) is used as an oxidizer and monomethylhydrazine (MMH) is used as fuel for these engines. The 150-pound thrust engines utilize eight control vales (four for fuel, four for oxidize) in a fail safe series parallel arrangement. The 70-pound ullage engine uses only single valves on both the fuel and oxidizer lines.
Two of the three 150-pound thrust engines in each module control roll and yaw, while one controls pitch. The 70-pound thrust engine in each module is used to settle the propellants in the propellant tanks. Just prior to J-2 engine restart, propellant control is accomplished by firing the 70-pound thrust engines.