Для перечислений можно использовать родной enum
melkij=> create type gender as enum('M','W');
CREATE TYPE
melkij=> create table foo (f gender);
CREATE TABLE
melkij=> insert into foo values('M');
INSERT 0 1
melkij=> insert into foo values('F');
ОШИБКА: неверное значение для перечисления gender: "F"
СТРОКА 1: insert into foo values('F');
^
melkij=> insert into foo values('');
ОШИБКА: неверное значение для перечисления gender: ""
СТРОКА 1: insert into foo values('');
И явный check не нужен и добавлять значения проще, особенно если поле используется не в одном месте базы только.