The answer, for postgresql, is it depends.
The query optimizer is constantly worked on, and the execution plan depends on table size, selectivity of your where clauses, and many other factors.
Often people find: they create an index, and it is not used in queries. Reason: a sequential scan can be cheaper for the database than accessing the index, and then the data.
Query optimization is the subject of dedicated mailing lists.