One thing that takes some getting used to in UIMA is the notion of creating type definitions to define the types of annotations and feature structures you can stuff into the CAS. Most ClearTK uses the type systems defined in the cleartk-type-system module. This is a set of XML files, which are then used to automatically generate the classes used in the code. If done correctly, you should never have to manually create instances of org.apache.uima.cas.Feature.
Here is the type definition for Token in cleartk-type-system. If you poke around more in the pom.xml in that module, you can see what plugins get invoked to kick off the autogeneration of the type system classes.
Another thing to keep in mind is that UIMA has the notion of Features and Feature Structures which borrows heavily from the usage in Linguistics where different chunks of data may have properties known as features. This is different from the Machine Learning sense of feature that the ClearTK feature extractors produce. You probably have the terms sorted out, but I like to point this out for clarification.
To get back to your original question, there are a few approaches you can take:
1) If you can dynamically determine whether the token of interest is in a dictionary, then you can write a simple feature extractor to return that data without needing to stuff it into the CONLL-like input. This will save you from the hassle of creating/extending the typesystem, and it also saves your from having to store superfluous information in the CAS. Presumably whatever you're doing to add the column to the CoNLL file could be embedded into your own FeatureExtractor code.
2) A simple approach would be to create a new type named something like InDictionary. Then during collection reading, you would create and add to the CAS an InDictionary object for each token that had the value set to true. Then you would need to write a custom feature extractor that does a jCas.select() over the bounds of the token of interest and returns true if the number found is greater than 0.
3) If you feel like you need to have this information embedded in the CAS, a better approach would be to extend the ClearTK Token class in your own typesystem definition. It would something like this:
<typeDescription>
<name>some.namespace.type.DictionaryToken</name>
<description/>
<supertypeName>org.cleartk.token.type.Token</supertypeName>
<features>
<featureDescription>
<name>inDictionary</name>
<description/>
<rangeTypeName>uima.cas.Boolean</rangeTypeName>
</featureDescription>
</features>
</typeDescription>
Then your collection reader would create instances of DictionaryToken instead of the regular Token. Then to get this value out during feature extraction, you could use the TypePathExtractor or write your own if you need to convert the boolean to a specific value (1/0, T/F, etc...)
Cheers,
Lee