ParameterSerializer
Turns the values you bound into the bytes of a Bind message, and reports the OID each one went out as.
The last step of the write path: a value has already been through the converters by the time it arrives here, and what is left is choosing the codec and encoding. Which codec depends on what is known about the target — a PgTyped wrapper or a PgContainer carries its own OID, and everything else is encoded by the codec registered for its Kotlin class, which is what decides the type the parameter is declared as. See Type System.
One of these belongs to each execution: the codecs it encodes with are the ones the execution pinned, taken from the TypeLookup it was built over. A query builds its own when a terminal runs.