StreamWriter wraps (contains) a stream. It overrides write and other respective methods to "encode" the data and pass the result to the stream.
Pseudocode of the codecs.StreamWriter definition in Python2.5:
The StreamWriter.encode method is attached to the derived codec-specific class definitions at the time of the codec initialization. An excerpt from encodings.utf_8.StreamWriter: