A factory method is a fancy term for describing a method that instantiates objects, whereas an Abstract Factory pattern is a design pattern about creating concrete objects.
What is Factory Method pattern and what is it for? According to Design Patterns by GoF, the intent of Factory Method is to,
Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method (pattern) lets a class defer instantiation to subclasses.
In Factory Method pattern, the class that is responsible for creating concrete product objects is said to be a Creator. In our example below, MazeGame, BombedMazeGame, and EnchantedMazeGame are Creator classes. In order to create different types of concrete Products (Wall, Room, Door), different type of concrete Creator classes with their own version of factory methods to create their own version of Wall, Room, or Door will be used. All concrete Creators derived from a base Creator interface or class (e.g. MazeGame) with default way of how to create a Wall, Room, or Door. Only if the default is not suited, the subclass can override the instantiation logic.
Factory Method pattern is very similar to Abstract Factory design pattern, except that in Factory Method, the client code that create the final product via a factory method (createMaze()) is in the Creator itself. For Abstract Factory, this factory method (e.g. createMaze()) resides outside of the Factory class.
 A factory method (createMaze()) that creates the final end product resides in the Creator class of the Factory Method pattern.
[2-5] Factory methods to be overridden/redefined by subclasses to decide how to instantiate products.
Factory Method vs. Abstract Factory