For I, Yes, use index=True
on your field definition.
For II, just put the Index
declaration outside the class definition:
class Users(Base):
__tablename__ = "user_table"
id = Column(Integer, Sequence('idseq'), primary_key=True)
email = Column(String, unique=True)
ip_addr = Column(String)
created_date = Column(TIMESTAMP(timezone=True), default=datetime.datetime.utcnow)
modified_date = Column(TIMESTAMP(timezone=True), default=datetime.datetime.utcnow)
Index('user_index', Users.c.email, Users.c.ip_addr)